import type { PageReq, PageRes } from '../common/commonApi'
import { useApi } from '@/composables/useApi'

/**
 * 账号日志
 */
export interface AccountLog {
  /** 主键 */
  id?: number
  /** 账号ID */
  accountId?: number
  /** 账号名称 */
  accountName?: string
  /** 应用类型 */
  appType?: string
  /** 应用名称 */
  appName?: string
  /** 模块名称 */
  moduleName?: string
  /** 资源名称 */
  resourceName?: string
  /** 资源方法 */
  resourceMethod?: string
  /** 资源路径 */
  resourcePath?: string
  /** 客户端UA */
  clientUserAgent?: string
  /** 客户端IP */
  clientIp?: string
  /** 是否成功 */
  success?: boolean
  /** 请求参数 */
  params?: string
  /** 响应结果 */
  result?: string
  /** 开始时间 */
  startTime?: string
  /** 结束时间 */
  endTime?: string
  /** 耗时 */
  cost?: number
}

/**
 * 账号日志查询参数
 */
export interface AccountLogQuery extends PageReq {
  /** 主键 */
  id?: number
  /** 应用类型 */
  appType?: string
  /** 模块名称 */
  moduleName?: string
  /** 资源名称 */
  resourceName?: string
  /** 资源方法 */
  resourceMethod?: string
  /** 资源路径 */
  resourcePath?: string
  /** 客户端类型 */
  clientType?: string
  /** 客户端IP */
  clientIp?: string
  /** 是否成功 */
  success?: boolean
  /** 开始时间 */
  startTime?: string
  /** 结束时间 */
  endTime?: string
  /** 账号ID */
  accountId?: number
}

const basePath = '/system/account/log'

export const accountLogApi = {
  queryPage: useApi<AccountLogQuery, PageRes<AccountLog>>(`${basePath}/page`).get,
  findDetail: async (id: number) => useApi<any, AccountLog>(`${basePath}/${id}`).get(),
}
